﻿using CourseUtils;
using System;
using System.IO;
using System.Text;


namespace MaxAndMinValueFromFileWithRandomNumbers
{
    static class Program
    {
        static int maxValue = 0;
        static int minValue = 0;

        static Random rnd = new Random();

        static int GetRandomValue()
        {
            return rnd.Next();
        }
        
        static void Main(string[] args)
        {
            int numbersAmount = IOHelpers.ReadIntFromConsole("Введите количество чисел:");
            int filesAmount   = IOHelpers.ReadIntFromConsole("Введите количество файлов:");

            for (int j = 0; j < filesAmount; j++ )
            {
                StringBuilder strToFile = new StringBuilder();
            
                for (int i = 0; i < numbersAmount; i++)
                {
                    int randomNumber = GetRandomValue();

                    strToFile.Append(String.Format(" {0}", randomNumber));
                }

                File.WriteAllText("output" + j + ".txt", strToFile.ToString());
            }

            int numberOfFile = IOHelpers.ReadIntFromConsole("Введите номер файла с которого необходимо узнать минимальное и максимальное число:", 0, filesAmount);

            if (numberOfFile != 0)
            {
                numberOfFile -= 1;
            }

            numberOfFile.ToString();

            String str = File.ReadAllText("output" + numberOfFile + ".txt");
            String number = "";

            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] == ' ')
                {
                    //delimeter is found
                    if (!String.IsNullOrEmpty(number))
                    {
                        int numberInt = Int32.Parse(number);
                        
                            if (numberInt >= maxValue)
                            {
                                maxValue = numberInt;
                            }                    
                           
                            if (numberInt <= minValue || minValue == 0)
                            {
                                minValue = numberInt;
                            }
                    }
                    number = "";
                }
                else
                {
                    number += str[i];
                }                  
            }

            Console.WriteLine("Самое маленькое число:{0}", minValue);
            Console.WriteLine("Самое большое число:{0}", maxValue);

            Console.ReadLine();
        } 
    }
}